package main

import (
	"errors"
	"fmt"
)

//参数返回异常
func err1 () (code int, err error) {
	return 1,errors.New("this is autoMake error")
}
//直接返回异常
func  err2 (age int, name string) error {
	return errors.New("this is throw Exception")
}
func err3 () error {

	errors.New("测试代码")
	//总会执行的方法
	/*defer func() {
		if error := recover();error == nil {
			fmt.Println("出现异常了")
		}
		fmt.Printf("总会执行的方法。。。")
	}()*/

	return nil
}


func main() {

	//err1 调用
	err := err3()
	//使用recover()方法抓住异常
	defer func() {
		if error := recover();error != nil {
			fmt.Println("出现异常了")
			//使用panic打印异常
			panic(err)
		}
		fmt.Printf("总会执行的方法。。。")
	}()
	if err != nil {
		fmt.Printf("err is occurs" )
	} else {
		fmt.Printf("process is normal")
	}

}